home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Snippets / PNL Libraries / Assembly / JGNE.a < prev    next >
Text File  |  1994-08-28  |  1KB  |  87 lines

  1.     include    'sysequ.a'
  2.     include    'traps.a'
  3.     proc    
  4.     export    InitJGNE, FinishJGNE
  5.  
  6. ; procedure InitJGNE(addr:ProcPtr; globals:ptr);
  7. ; { procedure Addr(var er:EventRecord; var retval:integer; globals:ptr); }
  8. InitJGNE
  9.     lea    data,a1
  10.     move.l    8(sp),(a1)+
  11.     move.l    JGNEFilter,(a1)+
  12.     move.l    4(sp),(a1)+
  13.     clr.w    (a1)+
  14.     move.l    #6,d0
  15.     _NewPtr    ,sys
  16.     lea    sysptr,a1
  17.     move.l    a0,(a1)
  18.  
  19.     move.w    #$4EF9,(a0)
  20.     lea    doJGNE,a1
  21.     move.l    a1,2(a0)    
  22.     lea    JGNEFilter,a1
  23.     move.l    a0,(a1)
  24.  
  25.     _FlushDataCache
  26.     _FlushInstructionCache
  27.  
  28.     move.l    (sp)+,a0
  29.     add.l    #8,sp
  30.     jmp    (a0)
  31.     
  32. FinishJGNE
  33. ; procedure Finish;
  34.     move.l    sysptr,a0
  35.     move.l    oldaddr,a1
  36.     move.l    a1,2(a0)
  37.     _FlushDataCache
  38.     _FlushInstructionCache
  39.     rts
  40.  
  41. doJGNEStack    record    0
  42. savea1    ds.l    1
  43. Return    ds.l    1
  44. retval    ds.w    1
  45.     endr
  46.  
  47.     with    doJGNEStack
  48.     
  49. ; A1 = event register ptr.
  50. ; return A1 and D0.
  51. doJGNE
  52.     move.l    a1,-(sp)
  53.  
  54.     lea    injgne,a0
  55.     tst.w    (a0)
  56.     bne.s    notme
  57.  
  58.     move.w    #1,(a0)
  59.  
  60.     lea    retval(sp),a0
  61.     move.l    a1,-(sp)
  62.     move.l    a0,-(sp)
  63.     move.l    globals,-(sp)
  64.     move.l    newaddr,a0
  65.     jsr    (a0)
  66.  
  67.     lea    injgne,a0
  68.     clr.w    (a0)
  69.     move.w    retval(sp),d0
  70. notme
  71.     move.l    (sp)+,a1
  72.     move.l    oldaddr,a0
  73.     jmp    (a0)
  74.  
  75. data
  76. newaddr    ds.l    1
  77. oldaddr    ds.l    1
  78. globals    ds.l    1
  79. injgne    ds.w    1
  80. sysptr    ds.l    1
  81.  
  82.     endp
  83.  
  84.     end
  85.     
  86. asm -wb "{active}"
  87.